<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://xmlns.jcp.org/jsf/core">
    <ui:composition template="/template.xhtml">
        <ui:define name="title">
            <h:outputText value="#{usuarioLabels.CrearNuevo}"></h:outputText>
        </ui:define>
        <ui:define name="body">

            <h:form id="frmCrear">
                <p:panel header="Nuevo Usuario" style="font-size: small">
                    <table>
                        <tr>
                            <th align="right" scope="row">
                                <p:outputLabel value="#{usuarioLabels.Cedula}:*"/>
                            </th>
                            <td align="left">
                                <p:inputMask mask="9?999999999999"
                                             maxlength="13"
                                             id="txtCedulaUsuario" value="#{usuarioController.selected.cedula}" title="#{usuarioLabels.Cedula}" 
                                             required="true" requiredMessage="#{usuarioLabels.CampoCedula}" style="width: 200px"/>                                
                            </td>
                            <td>
                                <p:message for="txtCedulaUsuario" />
                            </td>
                        </tr>
                        <tr>
                            <th align="right" scope="row">
                                <p:outputLabel value="#{usuarioLabels.Nombre}:*"/>
                            </th>
                            <td align="left">
                                <p:inputText id="txtNombreUsuario" value="#{usuarioController.selected.nombres}" title="#{usuarioLabels.Nombre}" 
                                             required="true" requiredMessage="#{usuarioLabels.CampoNombre}" style="width: 200px"
                                             onkeyup="value=value.toUpperCase();"/>
                                
                            </td>
                            <td>
                                <p:message for="txtNombreUsuario" />
                            </td>
                        </tr>
                        <tr>
                            <th align="right" scope="row">
                                <p:outputLabel value="#{usuarioLabels.Apellido}:*"/>
                            </th>
                            <td align="left">
                                <p:inputText id="txtApellidoUsuario" value="#{usuarioController.selected.apellidos}" title="#{usuarioLabels.Apellido}" 
                                             required="true" requiredMessage="#{usuarioLabels.CampoApellido}" style="width: 200px"
                                             onkeyup="value=value.toUpperCase();"/>
                            </td>
                            <td>
                                <p:message for="txtApellidoUsuario" />
                            </td>
                        </tr>
                        <tr>
                            <th align="right" scope="row">
                                <p:outputLabel value="#{usuarioLabels.Correo}:*"/>
                            </th>
                            <td align="left">
                                <p:inputText id="txtCorreoUsuario" value="#{usuarioController.selected.correo}" title="#{usuarioLabels.Correo}" 
                                             required="true" requiredMessage="#{usuarioLabels.CampoCorreo}" style="width: 200px"
                                             validatorMessage="Debe ingresar un correo válido">
                                    <f:validateRegex
                                        pattern="^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$" />
                                </p:inputText>
                            </td>
                            <td>
                                <p:message for="txtCorreoUsuario" />
                            </td>
                        </tr>
                        <tr>
                            <th align="right" scope="row">
                                <p:outputLabel value="#{usuarioLabels.Contrasena}:*"/>
                            </th>
                            <td>
                                <p:password id="txtPasswordUsuario" value="#{usuarioController.selected.contrasena}" title="#{usuarioLabels.Contrasena}"
                                            required="true" requiredMessage="#{usuarioLabels.CampoContrasena}" style="width: 200px"
                                            validatorMessage="#{usuarioLabels.ValidarLongitudContrasena}">
                                    <f:validateLength minimum="5" maximum="16" for="txtPasswordUsuario"></f:validateLength>
                                </p:password>
                            </td>
                            <td>
                                <p:message for="txtPasswordUsuario" />
                            </td>
                        </tr>
                        <tr>
                            <th align="right" scope="row">
                                <p:outputLabel value="#{usuarioLabels.Rol}:*"/>
                            </th>
                            <td align="left">
                                <p:selectOneMenu id="cboRolUsuario" value="#{usuarioController.selected.rol_id}"
                                                 styleClass="menu" panelStyleClass="panel"
                                                 required="true" requiredMessage="#{usuarioLabels.CampoRol}" 
                                                 style="width: 200px">
                                    <f:selectItem itemValue="#{null}" itemLabel="Seleccione..." />
                                    <f:selectItems value="#{rolController.rolesDisponibles}" var="rolUser" 
                                                   itemLabel="#{rolUser.nombre}" itemValue="#{rolUser.id}"/>
                                </p:selectOneMenu>   
                            </td>
                            <td>
                                <p:message for="cboRolUsuario" />
                            </td>
                        </tr>
                        <tr>
                            <th align="right" scope="row">
                                <p:outputLabel for="txtDescripcionUsuario" value="#{usuarioLabels.Descripcion}:"/>
                            </th>
                            <td align="left">
                                <p:inputTextarea id="txtDescripcionUsuario" value="#{usuarioController.selected.descripcion}" style="width: 200px"/>
                            </td>
                        </tr>
                    </table>

                    <p:commandButton action="#{usuarioController.crearUsuario()}" ajax="false" value="Guardar" />
                    <br></br>                    
                    <br></br>                    
                    <h:link outcome="Index" value="#{usuarioLabels.RegresarIndex}" />                    
                </p:panel>
            </h:form>
        </ui:define>
    </ui:composition>
    
</html>

